package com.sprouting.ops.service;


import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sprouting.ops.dao.OpsProductDependDao;
import com.sprouting.ops.model.OpsProductDepend;
import com.sprouting.ops.model.OpsRoleAuthority;
import com.sprouting.ops.model.qo.OpsProductDependQo;
import com.sprouting.ops.model.vo.OpsProductDependVo;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 产品依赖表(OpsProductDepend)() 表服务实现类
 *
 * @author ：lx（长沙麓谷）
 * @date 创建时间：2025-06-01 15:38:29
 */
@Service
@Slf4j
public class OpsProductDependService extends ServiceImpl<OpsProductDependDao, OpsProductDepend> {

    @Resource
    private OpsProductDependDao opsProductDependDao;

    /**
     * 分页查询 产品依赖表
     * @param page 分页参数
     * @param query 查询参数
     * @return
     */
    public Page<OpsProductDependVo> getListPage(Page page, OpsProductDependQo query){
        return opsProductDependDao.getListPage(page, query);
    }

    /**
     * 更新产品依赖表
     * @param productId 产品id
     * @param dependList 产品依赖
     */
    @Transactional(rollbackFor = Exception.class)
    public void updOpsProductDepend(String productId, List<OpsProductDepend> dependList) {
        // 先删除
        LambdaUpdateWrapper<OpsProductDepend> wrapper = new LambdaUpdateWrapper<>();
        wrapper.eq(OpsProductDepend::getProductId, productId);
        opsProductDependDao.delete(wrapper);

        // 新增
        this.saveBatch(dependList);
    }
}
